Skip to content

DataTracks integration through FFI#66

Merged
stephen-derosa merged 33 commits intolivekit:mainfrom
stephen-derosa:sderosa/data_tracks
Apr 2, 2026
Merged

DataTracks integration through FFI#66
stephen-derosa merged 33 commits intolivekit:mainfrom
stephen-derosa:sderosa/data_tracks

Conversation

@stephen-derosa
Copy link
Copy Markdown
Contributor

@stephen-derosa stephen-derosa commented Feb 26, 2026

Overview

Integrate DataTracks into the CPP SDK through the FFI

Details

  • setOnAudio/VideoFrameCallback() change signature to use track name
  • setOnAudio/VideoFrameCallback() addition signature to use track name
  • result.h file for floating up specific errors provided by the FFI
  • update token gen script to run for all tokens needed
  • Update client-sdk-rust submodule
  • data_track_subscription: on pushFrame() called when rust sends new frame, assert(since that breaks cpp<->ffi<->rust agreement of rust handling buffering

Testing

  • src/tests/integration/test_data_track.cpp

Examples

Blocked By

Rust SDKs PR

Resolves BOT-268

@stephen-derosa stephen-derosa self-assigned this Feb 26, 2026
@stephen-derosa stephen-derosa added the enhancement New feature or request label Feb 26, 2026
Copy link
Copy Markdown
Contributor

@ladvoc ladvoc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some initial comments, but I will make another pass. Looking clean so far!

Copy link
Copy Markdown
Contributor

@ladvoc ladvoc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some additional comments.

@stephen-derosa stephen-derosa force-pushed the sderosa/data_tracks branch 3 times, most recently from 8647582 to 74e4b99 Compare March 6, 2026 00:49
@stephen-derosa stephen-derosa force-pushed the sderosa/data_tracks branch 2 times, most recently from 6413736 to 2b792db Compare March 19, 2026 22:15
…ame, assert(since that breaks cpp<->ffi<->rust agreement of rust handling buffering
…d callback semantics and the public API returns a shared_ptr<>. Clean up race logic in read() by making the subscription read req while locked. close(): reset subscription handle, listener_id_, and closed_ under lock. Then call RemoveListener() ouside lock
update data tracks errors to latest proto errors

data_track_subscription -> data_track_stream

DataFrame -> DataTrackFrame
@stephen-derosa stephen-derosa merged commit 905cca7 into livekit:main Apr 2, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants